<template>
  <div id="main" class="w-140 h-70" ref="main">

  </div>
</template>

<script>
// 引入 echarts 核心模块，核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts';
// 引入柱状图图表，图表后缀都为 Chart
import { LineChart } from 'echarts';
// 引入提示框，标题，直角坐标系，数据集，内置数据转换器组件，组件后缀都为 Component
import {
  TitleComponent,
  TooltipComponent,
  GridComponent,
  DatasetComponent,
  TransformComponent
} from 'echarts';
// 标签自动布局，全局过渡动画等特性
import { LabelLayout, UniversalTransition } from 'echarts';
// 引入 Canvas 渲染器，注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from 'echarts';

export default {
  name: "index",
  props: {
    ratio: {

    }
  },
  data() {
    return {
      myEcharts: null,
    }
  },
  created() {
    // 注册必须的组件
    // echarts.use([
    //   TitleComponent,
    //   TooltipComponent,
    //   GridComponent,
    //   DatasetComponent,
    //   TransformComponent,
    //   LineChart,
    //   LabelLayout,
    //   UniversalTransition,
    //   CanvasRenderer
    // ]);
  },
  mounted() {
    const width = document.getElementById('main').clientWidth;
    const height = document.getElementById('main').clientHeight;
    this.myEcharts = echarts.init(this.$refs.main);
    this.$refs.main.style.width = width + 'px';
    this.$refs.main.style.height = height + 'px';

    // this.myEcharts

    function randomData() {
      now = new Date(+now + oneDay);
      value = value + Math.random() * 21 - 10;
      return {
        name: now.toString(),
        value: [
          [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'),
          Math.round(value)
        ]
      };
    }

    let data = [];
    let now = new Date(1997, 9, 3);
    let oneDay = 24 * 3600 * 1000;
    let value = Math.random() * 1000;
    for (var i = 0; i < 1000; i++) {
      data.push(randomData());
    }
    let option = {
      tooltip: {
        trigger: 'axis',
        formatter: function (params) {
          params = params[0];
          let date = new Date(params.name);
          return (
            date.getDate() +
            '/' +
            (date.getMonth() + 1) +
            '/' +
            date.getFullYear() +
            ' : ' +
            params.value[1]
          );
        },
        axisPointer: {
          animation: false
        }
      },
      xAxis: {
        type: 'time',
        splitLine: {
          show: false
        }
      },
      yAxis: {
        type: 'value',
        boundaryGap: [0, '100%'],
        splitLine: {
          show: false
        },
        axisLine: {
          show: false
        },
        axisTick: {
          show: false
        }
      },
      series: [
        {
          name: 'Fake Data',
          type: 'line',
          showSymbol: false,
          data: data,
          itemStyle: {
            color: this.ratio < 0 ? '#E35461' : '#2EBD85',
          }
        }
      ]
    }

    this.myEcharts.setOption(option);


    setInterval(() => {
      for (var i = 0; i < 5; i++) {
        data.shift();
        data.push(randomData());
      }
      this.myEcharts.setOption({
        series: [
          {
            data: data
          }
        ]
      });
    }, 1000);
  },
}
</script>

<style lang="scss" scoped>
#main {
  //width: 600px;
  //height: 400px;
}
</style>
